Skip to content

Add CINmetrics module#64

Open
SaraPotente wants to merge 7 commits intomasterfrom
cinmetrics_module
Open

Add CINmetrics module#64
SaraPotente wants to merge 7 commits intomasterfrom
cinmetrics_module

Conversation

@SaraPotente
Copy link
Collaborator

Description

This PR integrates the R package CINmetrics in samurai. This addition enables the automated calculation of various Chromosomal Instability (CIN) metrics, providing standardized genomic instability scores directly within the workflow.


PR checklist

  • This comment contains a description of changes (with reason).
  • If you've fixed a bug or added code that should be tested, add tests!
  • If you've added a new tool - have you followed the pipeline conventions in the contribution docs
  • Make sure your code lints (nf-core pipelines lint).
  • Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
  • Check for unexpected warnings in debug mode (nextflow run . -profile debug,test,docker --outdir <OUTDIR>).
  • Usage Documentation in docs/usage.md is updated.
  • Output Documentation in docs/output.md is updated.
  • CHANGELOG.md is updated.
  • README.md is updated (including new tool citations and authors/contributors).

@github-actions
Copy link

nf-core pipelines lint overall result: Failed ❌

Posted for pipeline commit 4491b45

+| ✅ 249 tests passed       |+
#| ❔  31 tests were ignored |#
!| ❗   3 tests had warnings |!
-| ❌   4 tests failed       |-
Details

❌ Test failures:

  • nextflow_config - Config default value incorrect: params.cin_segmentMean_cna is set as 0.2 in nextflow_schema.json but is -0.23446525363702297 in nextflow.config.
  • nextflow_config - Config default value incorrect: params.cin_segmentDistance_cna is set as 10000000.0 in nextflow_schema.json but is 0.2 in nextflow.config.
  • nextflow_config - Config default value incorrect: params.cin_minSegSize_cna is set as 1000000.0 in nextflow_schema.json but is 10 in nextflow.config.
  • nextflow_config - Config default value incorrect: params.cin_genomeSize_fga is set as 3000000000.0 in nextflow_schema.json but is 2873203431 in nextflow.config.

❗ Test warnings:

  • pipeline_todos - TODO string in output.md: Write this documentation describing your workflow's output
  • pipeline_todos - TODO string in main.nf.test: Once you have added the required tests, please run the following command to build this file:
  • pipeline_if_empty_null - ifEmpty(null) found in /home/runner/work/samurai/samurai/subworkflows/nf-core/fastq_trim_fastp_fastqc/main.nf: _ versions = ch_versions.ifEmpty(null) // channel: [ path(versions.yml) ]
    _

❔ Tests ignored:

✅ Tests passed:

  • files_exist - File found: .gitattributes
  • files_exist - File found: .gitignore
  • files_exist - File found: .nf-core.yml
  • files_exist - File found: .prettierignore
  • files_exist - File found: .prettierrc.yml
  • files_exist - File found: CHANGELOG.md
  • files_exist - File found: CITATIONS.md
  • files_exist - File found: LICENSE or LICENSE.md or LICENCE or LICENCE.md
  • files_exist - File found: nextflow_schema.json
  • files_exist - File found: nextflow.config
  • files_exist - File found: README.md
  • files_exist - File found: .github/.dockstore.yml
  • files_exist - File found: .github/CONTRIBUTING.md
  • files_exist - File found: .github/ISSUE_TEMPLATE/bug_report.yml
  • files_exist - File found: .github/ISSUE_TEMPLATE/feature_request.yml
  • files_exist - File found: .github/PULL_REQUEST_TEMPLATE.md
  • files_exist - File found: .github/workflows/linting_comment.yml
  • files_exist - File found: .github/workflows/linting.yml
  • files_exist - File found: assets/email_template.html
  • files_exist - File found: assets/email_template.txt
  • files_exist - File found: assets/sendmail_template.txt
  • files_exist - File found: conf/modules.config
  • files_exist - File found: conf/test.config
  • files_exist - File found: conf/test_full.config
  • files_exist - File found: docs/output.md
  • files_exist - File found: docs/README.md
  • files_exist - File found: docs/README.md
  • files_exist - File found: docs/usage.md
  • files_exist - File found: main.nf
  • files_exist - File found: assets/multiqc_config.yml
  • files_exist - File found: conf/base.config
  • files_exist - File found: conf/igenomes.config
  • files_exist - File found: conf/igenomes_ignored.config
  • files_exist - File found: modules.json
  • files_exist - File not found check: .github/ISSUE_TEMPLATE/bug_report.md
  • files_exist - File not found check: .github/ISSUE_TEMPLATE/feature_request.md
  • files_exist - File not found check: .github/workflows/push_dockerhub.yml
  • files_exist - File not found check: .markdownlint.yml
  • files_exist - File not found check: .nf-core.yaml
  • files_exist - File not found check: .yamllint.yml
  • files_exist - File not found check: bin/markdown_to_html.r
  • files_exist - File not found check: conf/aws.config
  • files_exist - File not found check: docs/images/nf-core-samurai_logo.png
  • files_exist - File not found check: lib/Checks.groovy
  • files_exist - File not found check: lib/Completion.groovy
  • files_exist - File not found check: lib/NfcoreTemplate.groovy
  • files_exist - File not found check: lib/Utils.groovy
  • files_exist - File not found check: lib/Workflow.groovy
  • files_exist - File not found check: lib/WorkflowMain.groovy
  • files_exist - File not found check: lib/WorkflowSamurai.groovy
  • files_exist - File not found check: parameters.settings.json
  • files_exist - File not found check: pipeline_template.yml
  • files_exist - File not found check: Singularity
  • files_exist - File not found check: lib/nfcore_external_java_deps.jar
  • files_exist - File not found check: .travis.yml
  • nextflow_config - Found nf-schema plugin
  • nextflow_config - Config variable found: manifest.nextflowVersion
  • nextflow_config - Config variable found: manifest.description
  • nextflow_config - Config variable found: manifest.version
  • nextflow_config - Config variable found: timeline.enabled
  • nextflow_config - Config variable found: trace.enabled
  • nextflow_config - Config variable found: report.enabled
  • nextflow_config - Config variable found: dag.enabled
  • nextflow_config - Config variable found: process.cpus
  • nextflow_config - Config variable found: process.memory
  • nextflow_config - Config variable found: process.time
  • nextflow_config - Config variable found: params.outdir
  • nextflow_config - Config variable found: params.input
  • nextflow_config - Config variable found: manifest.mainScript
  • nextflow_config - Config variable found: timeline.file
  • nextflow_config - Config variable found: trace.file
  • nextflow_config - Config variable found: report.file
  • nextflow_config - Config variable found: dag.file
  • nextflow_config - Config variable (correctly) not found: params.nf_required_version
  • nextflow_config - Config variable (correctly) not found: params.container
  • nextflow_config - Config variable (correctly) not found: params.singleEnd
  • nextflow_config - Config variable (correctly) not found: params.igenomesIgnore
  • nextflow_config - Config variable (correctly) not found: params.name
  • nextflow_config - Config variable (correctly) not found: params.enable_conda
  • nextflow_config - Config variable (correctly) not found: params.max_cpus
  • nextflow_config - Config variable (correctly) not found: params.max_memory
  • nextflow_config - Config variable (correctly) not found: params.max_time
  • nextflow_config - Config variable (correctly) not found: params.validationFailUnrecognisedParams
  • nextflow_config - Config variable (correctly) not found: params.validationLenientMode
  • nextflow_config - Config variable (correctly) not found: params.validationSchemaIgnoreParams
  • nextflow_config - Config variable (correctly) not found: params.validationShowHiddenParams
  • nextflow_config - Config variable (correctly) not found: validation.failUnrecognisedParams
  • nextflow_config - Config variable (correctly) not found: validation.failUnrecognisedHeaders
  • nextflow_config - Config timeline.enabled had correct value: true
  • nextflow_config - Config report.enabled had correct value: true
  • nextflow_config - Config trace.enabled had correct value: true
  • nextflow_config - Config dag.enabled had correct value: true
  • nextflow_config - Config dag.file ended with .html
  • nextflow_config - Config variable manifest.nextflowVersion started with >= or !>=
  • nextflow_config - Config manifest.version does not contain dev for release: 1.4.0
  • nextflow_config - Config params.custom_config_version is set to master
  • nextflow_config - Config params.custom_config_base is set to https://raw.githubusercontent.com/nf-core/configs/master
  • nextflow_config - Lines for loading custom profiles found
  • nextflow_config - nextflow.config contains configuration profile test
  • nextflow_config - Config default value correct: params.genome= hg38
  • nextflow_config - Config default value correct: params.igenomes_base= s3://ngi-igenomes/igenomes
  • nextflow_config - Config default value correct: params.custom_config_version= master
  • nextflow_config - Config default value correct: params.custom_config_base= https://raw.githubusercontent.com/nf-core/configs/master
  • nextflow_config - Config default value correct: params.publish_dir_mode= copy
  • nextflow_config - Config default value correct: params.max_multiqc_email_size= 25.MB
  • nextflow_config - Config default value correct: params.validate_params= true
  • nextflow_config - Config default value correct: params.purity= 1
  • nextflow_config - Config default value correct: params.title= Fragment size distribution
  • nextflow_config - Config default value correct: params.max_fragmentsize= 400
  • nextflow_config - Config default value correct: params.binsize= 500
  • nextflow_config - Config default value correct: params.caller= qdnaseq
  • nextflow_config - Config default value correct: params.analysis_type= solid_biopsy
  • nextflow_config - Config default value correct: params.qdnaseq_paired_ends= true
  • nextflow_config - Config default value correct: params.pon_name= PoN
  • nextflow_config - Config default value correct: params.selection_maxsize= 150
  • nextflow_config - Config default value correct: params.ichorcna_genome_style= UCSC
  • nextflow_config - Config default value correct: params.ichorcna_readcounter_chrs= chr1,chr2,chr3,chr4,chr5,chr6,chr7,chr8,chr9,chr10,chr11,chr12,chr13,chr14,chr15,chr16,chr17,chr18,chr19,chr20,chr21,chr22
  • nextflow_config - Config default value correct: params.ichorcna_readcounter_quality= 20
  • nextflow_config - Config default value correct: params.ichorcna_chrs_to_use= 1:22
  • nextflow_config - Config default value correct: params.ichorcna_chrs_to_train= 1:22
  • nextflow_config - Config default value correct: params.ichorcna_chrs_to_normalize= 1:22
  • nextflow_config - Config default value correct: params.ichorcna_estimate_normal= true
  • nextflow_config - Config default value correct: params.ichorcna_fraction_reads_male= 0.001
  • nextflow_config - Config default value correct: params.ichorcna_male_chrX_logR= 0.3
  • nextflow_config - Config default value correct: params.ichorcna_min_map_score= 0.75
  • nextflow_config - Config default value correct: params.ichorcna_max_frac_genome_subclone= 0.5
  • nextflow_config - Config default value correct: params.ichorcna_max_frac_cna_subclone= 0.7
  • nextflow_config - Config default value correct: params.ichorcna_min_segment_bins= 50
  • nextflow_config - Config default value correct: params.ichorcna_max_cn= 5
  • nextflow_config - Config default value correct: params.ichorcna_txne= 0.9999
  • nextflow_config - Config default value correct: params.ichorcna_alt_frac_threshold= 0.05
  • nextflow_config - Config default value correct: params.ichorcna_trx_strength= 10000
  • nextflow_config - Config default value correct: params.ichorcna_plotfiletype= pdf
  • nextflow_config - Config default value correct: params.ichorcna_plotylim= -2,4
  • nextflow_config - Config default value correct: params.ichorcna_estimate_ploidy= true
  • nextflow_config - Config default value correct: params.ichorcna_normal_states= 0.5, 0.6, 0.7, 0.8, 0.9, 0.95, 0.99
  • nextflow_config - Config default value correct: params.wisecondorx_yfrac= 0.4
  • nextflow_config - Config default value correct: params.wisecondorx_zscore= 5
  • nextflow_config - Config default value correct: params.ascat_sc_predict_refit= TRUE
  • nextflow_config - Config default value correct: params.ascat_sc_segmentation_alpha= 0.01
  • nextflow_config - Config default value correct: params.ascat_sc_min_purity= 0.01
  • nextflow_config - Config default value correct: params.ascat_sc_max_purity= 1
  • nextflow_config - Config default value correct: params.ascat_sc_min_ploidy= 1.7
  • nextflow_config - Config default value correct: params.ascat_sc_max_ploidy= 5
  • nextflow_config - Config default value correct: params.ascat_sc_max_tumor_ploidy= 5
  • nextflow_config - Config default value correct: params.gistic_t_amp= 0.1
  • nextflow_config - Config default value correct: params.gistic_t_del= 0.1
  • nextflow_config - Config default value correct: params.gistic_conf= 0.99
  • nextflow_config - Config default value correct: params.gistic_qval= 0.05
  • nextflow_config - Config default value correct: params.gistic_broad_chr_length= 0.99
  • nextflow_config - Config default value correct: params.gistic_cn_cap= 6
  • nextflow_config - Config default value correct: params.fastp_cut_window_size= 4
  • nextflow_config - Config default value correct: params.hrdcna_threshold= 0.2
  • nextflow_config - Config default value correct: params.cin_segmentMean_tai= 0.2
  • nextflow_config - Config default value correct: params.cin_segmentMean_base_segments= 0.2
  • nextflow_config - Config default value correct: params.cin_segmentMean_break_points= 0.2
  • nextflow_config - Config default value correct: params.cin_segmentMean_fga= 0.2
  • nf_test_content - 'tests/nextflow.config' contains modules_testdata_base_path
  • nf_test_content - 'tests/nextflow.config' contains pipelines_testdata_base_path
  • nf_test_content - 'nf-test.config' sets a testsDir
  • nf_test_content - 'nf-test.config' sets a workDir
  • nf_test_content - 'nf-test.config' sets a configFile
  • files_unchanged - .gitattributes matches the template
  • files_unchanged - .prettierrc.yml matches the template
  • files_unchanged - LICENSE matches the template
  • files_unchanged - .github/.dockstore.yml matches the template
  • files_unchanged - .github/CONTRIBUTING.md matches the template
  • files_unchanged - .github/ISSUE_TEMPLATE/bug_report.yml matches the template
  • files_unchanged - .github/ISSUE_TEMPLATE/feature_request.yml matches the template
  • files_unchanged - .github/PULL_REQUEST_TEMPLATE.md matches the template
  • files_unchanged - .github/workflows/linting_comment.yml matches the template
  • files_unchanged - .github/workflows/linting.yml matches the template
  • files_unchanged - assets/email_template.html matches the template
  • files_unchanged - assets/email_template.txt matches the template
  • files_unchanged - assets/sendmail_template.txt matches the template
  • files_unchanged - docs/README.md matches the template
  • readme - README Zenodo placeholder was replaced with DOI.
  • plugin_includes - No wrong validation plugin imports have been found
  • pipeline_name_conventions - Name adheres to nf-core convention
  • template_strings - Did not find any Jinja template strings (0 files)
  • schema_lint - Schema lint passed
  • schema_lint - Schema title + description lint passed
  • schema_lint - Input mimetype lint passed: 'text/csv'
  • system_exit - No System.exit calls found
  • actions_schema_validation - Workflow validation passed: fix-linting.yml
  • actions_schema_validation - Workflow validation passed: linting.yml
  • actions_schema_validation - Workflow validation passed: ci.yml
  • actions_schema_validation - Workflow validation passed: linting_comment.yml
  • merge_markers - No merge markers found in pipeline files
  • modules_json - Only installed modules found in modules.json
  • multiqc_config - assets/multiqc_config.yml found and not ignored.
  • multiqc_config - assets/multiqc_config.yml contains report_section_order
  • multiqc_config - assets/multiqc_config.yml contains export_plots
  • multiqc_config - assets/multiqc_config.yml contains report_comment
  • multiqc_config - assets/multiqc_config.yml follows the ordering scheme of the minimally required plugins.
  • multiqc_config - assets/multiqc_config.yml contains 'export_plots: true'.
  • modules_structure - modules directory structure is correct 'modules/nf-core/TOOL/SUBTOOL'
  • local_component_structure - local subworkflows directory structure is correct 'subworkflows/local/TOOL/SUBTOOL'
  • base_config - conf/base.config found and not ignored.
  • modules_config - conf/modules.config found and not ignored.
  • modules_config - FASTQC found in conf/modules.config and Nextflow scripts.
  • modules_config - FASTP found in conf/modules.config and Nextflow scripts.
  • modules_config - BWA_INDEX found in conf/modules.config and Nextflow scripts.
  • modules_config - BWA_MEM found in conf/modules.config and Nextflow scripts.
  • modules_config - BWAMEM2_INDEX found in conf/modules.config and Nextflow scripts.
  • modules_config - BWAMEM2_MEM found in conf/modules.config and Nextflow scripts.
  • modules_config - PICARD_MARKDUPLICATES found in conf/modules.config and Nextflow scripts.
  • modules_config - SAMTOOLS_INDEX found in conf/modules.config and Nextflow scripts.
  • modules_config - SAMTOOLS_IDXSTATS found in conf/modules.config and Nextflow scripts.
  • modules_config - SAMTOOLS_FLAGSTAT found in conf/modules.config and Nextflow scripts.
  • modules_config - SAMTOOLS_STATS found in conf/modules.config and Nextflow scripts.
  • modules_config - SAMTOOLS_VIEW found in conf/modules.config and Nextflow scripts.
  • modules_config - SAMTOOLS_INDEX_SIZE_SELECTION found in conf/modules.config and Nextflow scripts.
  • modules_config - SAMTOOLS_STATS_PRE found in conf/modules.config and Nextflow scripts.
  • modules_config - SAMTOOLS_STATS_POST found in conf/modules.config and Nextflow scripts.
  • modules_config - BAMPE_FRAGMENTSIZE_PRE found in conf/modules.config and Nextflow scripts.
  • modules_config - BAMPE_FRAGMENTSIZE_POST found in conf/modules.config and Nextflow scripts.
  • modules_config - QDNASEQ found in conf/modules.config and Nextflow scripts.
  • modules_config - CREATE_QDNASEQ_SUMMARY found in conf/modules.config and Nextflow scripts.
  • modules_config - HMMCOPY_READCOUNTER_ICHORCNA found in conf/modules.config and Nextflow scripts.
  • modules_config - HMMCOPY_READCOUNTER_PON found in conf/modules.config and Nextflow scripts.
  • modules_config - ICHORCNA_CREATEPON found in conf/modules.config and Nextflow scripts.
  • modules_config - ICHORCNA_RUN found in conf/modules.config and Nextflow scripts.
  • modules_config - AGGREGATE_ICHORCNA_TABLE found in conf/modules.config and Nextflow scripts.
  • modules_config - CORRECT_LOGR_ICHORCNA found in conf/modules.config and Nextflow scripts.
  • modules_config - PLOT_ICHORCNA found in conf/modules.config and Nextflow scripts.
  • modules_config - FORMAT_ICHORCNA_SEG found in conf/modules.config and Nextflow scripts.
  • modules_config - CONCATENATE_QDNASEQ_PLOTS found in conf/modules.config and Nextflow scripts.
  • modules_config - NORMAL_CONVERT found in conf/modules.config and Nextflow scripts.
  • modules_config - WISECONDORX_CONVERT found in conf/modules.config and Nextflow scripts.
  • modules_config - WISECONDORX_NEWREF found in conf/modules.config and Nextflow scripts.
  • modules_config - WISECONDORX_PREDICT found in conf/modules.config and Nextflow scripts.
  • modules_config - CONVERT_GISTIC_SEG found in conf/modules.config and Nextflow scripts.
  • modules_config - ASSEMBLE_WISECONDORX_OUTPUTS found in conf/modules.config and Nextflow scripts.
  • modules_config - CONVERT_WISECONDORX_IMAGES found in conf/modules.config and Nextflow scripts.
  • modules_config - ASCAT_SC found in conf/modules.config and Nextflow scripts.
  • modules_config - CONCATENATE_BIN_PLOTS found in conf/modules.config and Nextflow scripts.
  • modules_config - CONCATENATE_ASCATSC_PLOTS found in conf/modules.config and Nextflow scripts.
  • modules_config - CONCATENATE_ASCATSC_REFITTED_PLOTS found in conf/modules.config and Nextflow scripts.
  • modules_config - CREATE_ASCATSC_SUMMARY found in conf/modules.config and Nextflow scripts.
  • modules_config - CIN_SIGNATURE_QUANTIFICATION found in conf/modules.config and Nextflow scripts.
  • modules_config - HRDCNA found in conf/modules.config and Nextflow scripts.
  • modules_config - COMPUTE_CINMETRICS found in conf/modules.config and Nextflow scripts.
  • modules_config - GISTIC2 found in conf/modules.config and Nextflow scripts.
  • modules_config - ASSEMBLE_GISTIC_OUTPUT found in conf/modules.config and Nextflow scripts.
  • modules_config - MAFTOOLS found in conf/modules.config and Nextflow scripts.
  • nfcore_yml - Repository type in .nf-core.yml is valid: pipeline
  • nfcore_yml - nf-core version in .nf-core.yml is set to the latest version: 3.4.1
  • version_consistency - Version tags are consistent: manifest.version = 1.4.0, nfcore_yml.version = 1.4.0

Run details

  • nf-core/tools version 3.4.1
  • Run at 2026-02-27 16:30:32

cat("Reading:", input_file, "\n")
df <- read_tsv(input_file, show_col_types = FALSE)

colnames(df) <- c("Sample", "Chromosome", "Start", "End", "Num_Probes", "Segment_Mean")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you pass the column names directly to read_tsv?

genomeSize_fga = args$genomeSize_fga
)

metrics$tai[is.na(metrics$tai)] <- 0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this? A data.frame? This is really nit-picking, but if it is so, let's use either tidyverse syntax or the other, not both.

}

// Run CINmetrics if specified
if (params.compute_cinmetrics) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You use ext.when, so this check is unnecessary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants